package br.com.virtual.cadastrar.service.impl;

import java.util.List;

import javax.ejb.Local;
import javax.ejb.Stateless;
import javax.inject.Inject;

import br.com.virtual.base.exceptions.VirtualValidationException;
import br.com.virtual.cadastrar.dao.CategoriaDAO;
import br.com.virtual.cadastrar.model.Categoria;
import br.com.virtual.cadastrar.model.Grupo;
import br.com.virtual.cadastrar.service.CategoriaService;

@Stateless
@Local(CategoriaService.class)
public class CategoriaServiceImpl implements CategoriaService {

	@Inject
	private CategoriaDAO categoriaDAO;

	@Override
	public Categoria create(Categoria categoria)
			throws VirtualValidationException {
		return categoriaDAO.create(categoria);
	}

	@Override
	public Categoria read(Long id) {
		return categoriaDAO.read(id);
	}

	@Override
	public void update(Categoria categoria) throws VirtualValidationException {
		categoriaDAO.update(categoria);
	}

	@Override
	public void delete(Categoria categoria) throws VirtualValidationException {
		categoriaDAO.delete(categoria);
	}

	@Override
	public List<Categoria> getList() {
		return categoriaDAO.getList();
	}

	@Override
	public List<Categoria> getListAtivo() {
		return categoriaDAO.getListAtivo();
	}

	@Override
	public List<Categoria> getListSemPai() {
		return categoriaDAO.getListSemPai();
	}

	@Override
	public List<Categoria> readChildren(Long id) {
		return categoriaDAO.readChildren(id);
	}

	@Override
	public List<Categoria> getListByGrupo(Grupo grupo) {
		return this.categoriaDAO.getListByGrupo(grupo);
	}
}
